home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / programm.ing / libscsi1.zoo / LibScsi-0.01 / seek_rnd.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-03-14  |  787 b   |  35 lines

  1. /*
  2.  * seek_rnd.c - Copyright Steve Woodford, August 1993.
  3.  *
  4.  * Seek on a random access device such as a hard disk. Results are
  5.  * undefined if used for a sequential device. NO SANITY CHECKS ARE
  6.  * PERFORMED HERE TO ENSURE THE CORRECT DEVICE TYPE!!!
  7.  */
  8.  
  9. #include <sys/types.h>
  10. #include <sys/scsi.h>
  11. #include "libscsi.h"
  12.  
  13.  
  14. PUBLIC  short
  15. Scsi_Seek_Rand(u_char id, u_long block)
  16. {
  17.     Scsi_Cmd    sc;
  18.  
  19.     if ( id & 0xc0 )
  20.         return(-1);
  21.  
  22.     (void) _Scsi_Timeout( T_Seek(id) );
  23.  
  24.     sc.sc_command = CMD(id, SZ_CMD_SEEK);
  25.     sc.sc_link    = 0;
  26.     sc.sc_z[3]    = 0;
  27.     sc.sc_z[2]    = block & 0xff;
  28.     block       >>= 8;
  29.     sc.sc_z[1]    = block & 0xff;
  30.     block       >>= 8;
  31.     sc.sc_z[0]    = LUN(id, (block & 0x3f));
  32.  
  33.     return ( _Scsi_Command( DMA_READ, &sc, 0L, 0 ) );
  34. }
  35.